home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / commodore-scene-files / Coverdisks / CDU / V3D07.D64 / hires animator (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  3.7 KB  |  122 lines

  1. 10 IFA>0THEN40
  2. 20 POKE55,255:POKE56,63:POKE51,255:POKE52,63:CLR
  3. 30 A=A+1:PRINT"LOADING SPRITES":LOAD"SPRITE FILE 1",8,1
  4. 40 IFA>1THEN60
  5. 50 A=A+1:PRINT"LOADING M/CODE ":LOAD"ANIMATE.MC",8,1
  6. 60 IFA>2THEN90
  7. 70 SYS 50222:REM CLEAR BIT MAP MEMORY AND HIRES CHARACTER MEMORY
  8. 80 A=A+1:PRINT"LOADING HIRES CH":LOAD"TEST1      .ANM",8,1
  9. 90 GOSUB 820:REM VARIABLES
  10. 100 SYSCLS:SYSCMEM:SYSSBANK:SYSSCHBASE
  11. 110 POKE53265,PEEK(53265)OR32:REM HIRES BIT MAP MODE
  12. 120 IFPEEK(MULTI)=1THENPOKE53270,PEEK(53270)OR16:REM MULTICOLOUR
  13. 130 POKE24568,0:POKE24569,8:REM SPRITE POINTERS
  14. 140 POKE53276,PEEK(53276)OR3:REM MULTI COLOUR SPRITE
  15. 150 POKE53287,10:POKE53285,12:POKE53286,5:POKE53288,0:REM SPRITE COLOUR
  16. 160 POKE53248,100:POKE53249,50:REM X,Y CO-ORDINATES
  17. 170 POKE53264,PEEK(53264)OR1:REM  MSB OF SPRITE 0
  18. 180 POKE53269,PEEK(53269)OR3:REM SWITCH ON SPRITES
  19. 190 SYSINIT:REM SET UP HIRES FIGURE ON SCREEN
  20. 200 SC=0:DB=0
  21. 210 POKEMODE,108:SYSANIM
  22. 220 REM MAIN LOOP
  23. 230 FORN=0TO320
  24. 240 SX=SX-1
  25. 250 IF SX<0AND(PEEK(53264)AND1)=1THENGOSUB760
  26. 260 IF SX=0AND(PEEK(53264)AND1)=0THENSX=100:POKE53264,1
  27. 270 IF DB=0THENSC=SC+1
  28. 280 IF DB=1THENSC=SC-1
  29. 290 IF SC=0THENDB=0
  30. 300 IF SC=7THENDB=1
  31. 310 POKE53248,SX:POKE24568,SC
  32. 320 NEXTN
  33. 330 POKE53269,0:SYSAOFF
  34. 340 POKECB,96:POKECT,128:SYSWIPE
  35. 350 POKE MULTI,1:POKEABASE,0:POKEABASE+1,96
  36. 360 K=60
  37. 370 X=1/(null):P=0
  38. 380 A=1/SQR(5)
  39. 390 FORN=1 TO 1000
  40. 400 Y=X-.5:X=X+A-INT(X+A)
  41. 410 P=P-Y
  42. 420 XX=X*319:YY=100-P*K:CC=INT(RND(1)*3+1)
  43. 430 XX=2*INT(XX/2):XH=INT(XX/256):XL=XX-(XH*256)
  44. 440 POKECOLOUR,CC:POKEHX,XL:POKEHX+1,XH:POKEHY,YY
  45. 450 SYSPLOT
  46. 460 NEXTN
  47. 470 POKE MODE,96
  48. 480 GOSUB670:PV=1:POKEPAUSE,PV:POKEYD,0
  49. 490 X1=(PEEK(PX)*8)+60:Y1=150:POKE53250,X1:POKE53251,Y1
  50. 500 SX=100:POKE53264,1:POKE53248,SX:POKE53249,120:POKE53269,3
  51. 510 SYSNANIM
  52. 520 SX=SX-1
  53. 530 IF SX<0AND(PEEK(53264)AND1)=1THENGOSUB760
  54. 540 IF SX=0AND(PEEK(53264)AND1)=0THENSX=100:POKE53264,1
  55. 550 IF DB=0THENSC=SC+1
  56. 560 IF DB=1THENSC=SC-1
  57. 570 IF SC=0THENDB=0
  58. 580 IF SC=7THENDB=1
  59. 590 IFPEEK(FIRE)=1THEN650
  60. 600 POKE53248,SX:POKE24568,SC
  61. 610 X1=(PEEK(PX)*8)+60
  62. 620 IFX1>255THENX1=X1-255:POKE53264,PEEK(53264)OR2:POKE53250,X1:GOTO640
  63. 630 IFX1<255THENPOKE53264,PEEK(53264)AND253:POKE53250,X1
  64. 640 GOTO510
  65. 650 POKE53269,0
  66. 660 END
  67. 670 REM INITIALISE CHARACTER ROUTINE
  68. 680 POKE MVE,0:POKE RILE,0
  69. 690 X=8:Y=8:REM COORDINATES (IN CHARACTER BLOCKS) OF START POSITION.
  70. 700 POKEPX,X:POKEPY,Y
  71. 710 SS=24576+(320*Y):POKEHL,INT(SS/256):POKELL,SS-(PEEK(HL)*256):REM EXTREME LHS
  72. 720 POKEHR,INT((SS+240)/256):POKELR,(SS+240)-(PEEK(HR)*256):REM EXTREME RHS
  73. 730 SS=SS+(8*X):POKESVLUE+1,INT(SS/256):POKESVLUE,SS-(INT(SS/256)*256)
  74. 740 SYS AER
  75. 750 RETURN
  76. 760 REM MSB OFF
  77. 770 SX=255:POKE53264,PEEK(53264)AND 254
  78. 780 RETURN
  79. 790 REM MSB ON
  80. 800 SX(0)=0:POKE53264,PEEK(53264)OR1
  81. 810 RETURN
  82. 820 REM INITIALISE VARIABLES
  83. 830 SBANK=49205:REM SET BANK
  84. 840 SCHBASE=49224:REM SET CHAR.BASE
  85. 850 RILE=49916:REM MOVING L-R OR R-L
  86. 860 MVE=49917:REM CHARACTER MOVE
  87. 870 MULTI=49152:REM MULTI COLOUR MODE
  88. 880 INIT=49362:REM INITIALISE HIRES CHARACTER ROUTINE
  89. 890 ANIM=49450:REM ANIMATION ROUTINE
  90. 900 PAUSE=50192:REM SLOW ROUTINE VALUE LOCATION
  91. 910 CLS=49235:REM SET COLOUR MEMORY
  92. 920 CMEM=49246:REM CLEAR MEMORY(COLOUR)LOCATION
  93. 930 DX=49359:REM DIRECTION OF X JOYSTICK
  94. 940 DY=49360:REM DIRECTION OF Y JOYSTICK
  95. 950 FIRE=49361:REM FIRE BUTTON PRESSED
  96. 960 LL=49918:REM LEFT HAND SIDE LO.BYTE
  97. 970 LR=49920:REM RIGHT HAND SIDE LO.BYTE
  98. 980 HL=49919:REM LEFT HAND SIDE HI.BYTE
  99. 990 HR=49921:REM RIGHT HAND SIDE HI.BYTE
  100. 1000 PV=16:REM PAUSE VALUE
  101. 1010 CB=254:REM BOTTOM OF MEMORY CLEAR VECTOR HI BYTE
  102. 1020 CT=50236:REM TOP OF MEMORY HI BYTE
  103. 1030 PX=49924:REM POSITION OF X
  104. 1040 PY=49925:REM POSITION OF Y
  105. 1050 YD=49926:REM SWITCH ON MOVEMENT IN Y AXIS
  106. 1060 POKEYD,1
  107. 1070 ABASE=51290:REM HIRES SCREEN VECTOR
  108. 1080 ERASE=50981:REM ERASE HIRES PIXEL
  109. 1090 COLOUR=50982:REM MULTI COLOUR COLOUR
  110. 1100 HX=50983:REM HIRES PIXEL X
  111. 1110 HY=50985:REM HIRES PIXEL Y
  112. 1120 PLOT=50901:REM PLOT HIRES PIXEL
  113. 1130 WIPE=49297:REM CLEAR HIRES MEMORY
  114. 1140 AOFF=49475:REM SWITCH OFF INTERRUPT DRIVEN CHARACTER
  115. 1150 NANIM=49490:REM NON INTERRUPT DRIVEN HIRES CHARACTER
  116. 1160 MODE=49711:REM POKEMODE,108 BEFORE USING INTERRUPT CHARACTER OTHERWISE 96
  117. 1170 ALOOP=49837:REM ROUTINE TO EX-OR 80*96 PIXEL BLOCK OF MEMORY
  118. 1180 ASTE=49890:REM ROUTINE TO STORE START VARIABLES OF BLOCK MOVE
  119. 1190 AER=49714:REM ROUTINE TO SET STANDING FIGURE
  120. 1200 SVLUE=49912:REM SCREEN POSITION OF CHARACTER.
  121. 1210 RETURN
  122.